home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Snippets / DirectoryPopup 1.0 / □□□DPSample Source / SimpleAppMenus.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-06-02  |  2.1 KB  |  146 lines  |  [TEXT/CWIE]

  1. /*
  2.  *    Project:        SimpleApp
  3.  *
  4.  *    Filename:         SimpleAppMenus.c
  5.  *
  6.  *    Author:         Marco Piovanelli
  7.  *
  8.  *    Revision History:
  9.  *
  10.  *            1996.05.24                MP        created this file
  11.  *
  12.  */
  13.  
  14. #include "SimpleApp.h"
  15.  
  16. #ifndef __DEVICES__
  17. #include <Devices.h>
  18. #endif
  19.  
  20. #ifndef __STANDARDFILE__
  21. #include <StandardFile.h>
  22. #endif
  23.  
  24. OSErr InitializeMenus ( )
  25. {
  26.     MenuRef menu ;
  27.  
  28.     SetMenuBar ( GetNewMBar ( kMenuBarID ) ) ;
  29.     
  30.     menu = GetMenuHandle ( kMenuApple ) ;
  31.     if ( menu == nil )
  32.         return resNotFound ;
  33.         
  34.     AppendResMenu ( menu, 'DRVR' ) ;
  35.     
  36.     DrawMenuBar ( ) ;
  37.     
  38.     return noErr ;
  39. }
  40.  
  41. OSErr PrepareMenus ( )
  42. {
  43.     return noErr ;
  44. }
  45.  
  46. OSErr DoDeskAccessory ( SInt16 menuItem )
  47. {
  48.     Str255 deskAccessoryName ;
  49.     
  50.     GetMenuItemText ( GetMenuHandle ( kMenuApple ), menuItem, deskAccessoryName ) ;
  51.     OpenDeskAcc ( deskAccessoryName ) ;
  52.     
  53.     return noErr ;
  54. }
  55.  
  56. OSErr DoAppleChoice ( SInt16 menuItem )
  57. {
  58.     OSErr err = noErr ;
  59.  
  60.     switch ( menuItem )
  61.     {
  62.         case kItemAbout :
  63.             break ;
  64.  
  65.         default:
  66.             err = DoDeskAccessory ( menuItem ) ;
  67.             break ;
  68.     }
  69.     
  70.     return err ;
  71. }
  72.  
  73. OSErr DoFileChoice ( SInt16 menuItem )
  74. {
  75.     OSErr err = noErr ;
  76.  
  77.     switch ( menuItem )
  78.     {
  79.         case kItemNew:
  80.             if ( ( err = CreateWindow ( nil ) ) != noErr )
  81.             {
  82.                 return err ;
  83.             }
  84.             break ;
  85.         
  86.         case kItemOpen:
  87.             {
  88.                 StandardFileReply reply ;
  89.                 
  90.                 StandardGetFile ( nil, -1, nil, & reply ) ;
  91.                 if ( reply . sfGood )
  92.                 {
  93.                     if ( ( err = CreateWindow ( & reply . sfFile ) ) != noErr )
  94.                     {
  95.                         return err ;
  96.                     }
  97.                 }
  98.             }
  99.             break ;
  100.         
  101.         case kItemClose:
  102.             {
  103.                 WindowRef macWindow ;
  104.                 if ( ( macWindow = FrontWindow ( ) ) != nil )
  105.                 {
  106.                     DestroyWindow ( macWindow ) ;
  107.                 }
  108.             }
  109.             break;
  110.  
  111.         case kItemQuit:
  112.             gExiting = true ;
  113.             break ;
  114.  
  115.         default:
  116.             break ;
  117.     }
  118.     
  119.     return err ;
  120. }
  121.  
  122. OSErr DoMenuChoice ( SInt32 menuChoice )
  123. {
  124.     SInt16 menuID = ( ( menuChoice >> 16 ) & 0x0000FFFF ) ;
  125.     SInt16 menuItem = ( menuChoice & 0x0000FFFF ) ;
  126.     OSErr err = noErr ;
  127.     
  128.     switch ( menuID )
  129.     {
  130.         case kMenuApple :
  131.             err = DoAppleChoice ( menuItem ) ;
  132.             break ;
  133.             
  134.         case kMenuFile :
  135.             err = DoFileChoice ( menuItem ) ;
  136.             break ;
  137.  
  138.         default :
  139.             break ;
  140.     }
  141.  
  142.     HiliteMenu ( 0 ) ;
  143.  
  144.     return err ;
  145. }
  146.